Made by bungholio.  July 11, 2009



"Memory Scanner.pis" is for the program PS2Dis.
"Memory Scanner.txt" is what you would use to create
your Day1 file or whatever you use for your cheat
devices if possible.



Use the JAL in the functions "scesifsendcmd" of any PS2 game
as your enable code.  3 lines below it is a "jr ra".
Use that line as the jump to my function.
If your enable code is this:
901401ac 0c041ac1
your jump would be
201401b8 0803ff7c

The "0803ff7c" is always the same.
Use the program PS2Dis and Labelmates to easily find that
enable code.  You could change any "jr ra" to lead to the
memory scanner, you just need an enable code that is used
constantly.



It was originally about than 560 lines long, so don't go nuts
when you see it's 376 lines long.  That's about 200 lines you
don't need to type.



If you can do so, it's always best to do a save dump or something
before you start testing values.  That way you can check your
stored results just in case something goes wrong.



The thing works.  If there are problems that shouldn't occur,
like the game pausing forever or pausing/not pausing when it
should, you probably typed something wrong.  It's an easy mistake
and has happened to me like crazy considering there's 376
lines to type in.  I ended up doing save dumps to check which lines
I screwed up.  1 wrong line will wreck the whole scanner.



I'm always wandering on the forums at:
http://www.codemasters-project.net/vb/
http://forums.codetwink.com/f7/
http://www.thegshi.org/vb/



Need help, ask and I will try.  If you don't know how to
count in hexadecimal and know nothing about bits, as in
binary counting, learn those before you ask about them.



Every last problem I ever had was due to me mistyping a line,
or forgetting to turn on the correct "Automatically jump to
whatever function" thing for the Remove Result function.
The thing worked perfect otherwise.  I have tried the first
bytes scan for things that are equal to my value, things
that are less than my value, extra scans for things that didn't
change and things that decreased, scan for only 1 bit, extra bits
scans (both off and on), go through the results, and get address.
I tried almost everything, it was all perfect.



These are noticeable problems that occured due to me typing
lines wrong, or forgetting something:
1.  "Turn Bits On By Combining Them" had a pause.  It never pauses.
I accidentally typed the first 2 lines' addresses wrong.
2.  The game didn't pause after an extra bytes scan because I
forgot to turn on the "automatically jump to extra bytes scan"
code.  The destroyed all of my results.
3.  The game didn't store results because I forgot to set a
value type and length.
4.  The game froze when I used "Apply Old Value" or "Turn Only
The Stored Bits On" because I didn't use "Reset Currently Selected
Result" after my first scan, and I messed up my extra scans which
removed all of my results, so it applied the value 0 to address
00000000, which always freezes the game instantly.
5.  The game didn't do the usual pause after I did an extra scan,
the game sort of moved in slow motion while I was holding the
buttons.  It was some mistake where I forgot to add some line.
6.  The game paused forever because I mistyped a line in the value
type and length code the caused the first bytes scan to never move
up to check the next address, so it accidentally checked the
first address forever.



It's probably possible to freeze the game with "Apply Old Value"
or the apply bits codes due to modifying a bad address, but out
of my many tests that never happened once.